#include "simple/support/meta/remove_if.hpp"
#include "simple/support/meta/bind.hpp"
#include "simple/support/meta/list.hpp"

#include <type_traits>

using namespace simple::support;

int main()
{

	static_assert(std::is_same_v<
		meta::remove_if_t<meta::list<long, unsigned int, short, unsigned char>,
			std::is_unsigned>,
		meta::list<long, short>
	>);

	static_assert(std::is_same_v<
		meta::remove_if_t<meta::list<long, int, int, short, char, int>,
			meta::bind<std::is_same, int>::template bound>,
		meta::list<long, short, char>
	>);

	return 0;
}
